home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / kcl.lha / lsp / evalmacros.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  24KB  |  1,019 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "evalmacros.h"
  5. init_evalmacros(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     MM(VV[44],L1,start,size,data);
  9.     MM(VV[45],L2,start,size,data);
  10.     MM(VV[46],L3,start,size,data);
  11.     MM(VV[47],L4,start,size,data);
  12.     MM(VV[48],L5,start,size,data);
  13.     MM(VV[49],L6,start,size,data);
  14.     MM(VV[50],L7,start,size,data);
  15.     MM(VV[51],L8,start,size,data);
  16.     MM(VV[52],L9,start,size,data);
  17.     MM(VV[33],L10,start,size,data);
  18.     MM(VV[53],L11,start,size,data);
  19.     MM(VV[54],L12,start,size,data);
  20.     MM(VV[5],L13,start,size,data);
  21.     MM(VV[55],L14,start,size,data);
  22.     MM(VV[56],L15,start,size,data);
  23.     MM(VV[57],L16,start,size,data);
  24.     MM(VV[58],L17,start,size,data);
  25.     MM(VV[30],L18,start,size,data);
  26.     MM(VV[59],L19,start,size,data);
  27.     MM(VV[60],L20,start,size,data);
  28.     MM(VV[61],L21,start,size,data);
  29.     MM(VV[38],L22,start,size,data);
  30.     MM(VV[62],L23,start,size,data);
  31.     MM(VV[32],L24,start,size,data);
  32.     MM(VV[63],L25,start,size,data);
  33.     MM(VV[64],L26,start,size,data);
  34.     vs_top=vs_base=base;
  35. }
  36. /*    macro definition for DEFVAR    */
  37.  
  38. static L1()
  39. {    register object *base=vs_base;
  40.     register object *sup=base+VM3;
  41.     vs_reserve(VM3);
  42.     check_arg(2);
  43.     vs_top=sup;
  44.     {object V1=base[0]->c.c_cdr;
  45.     if(endp(V1))invalid_macro_call();
  46.     base[2]= (V1->c.c_car);
  47.     V1=V1->c.c_cdr;
  48.     if(endp(V1)){
  49.     base[3]= Cnil;
  50.     base[4]= Cnil;
  51.     } else {
  52.     base[3]= (V1->c.c_car);
  53.     base[4]= Ct;
  54.     V1=V1->c.c_cdr;}
  55.     if(endp(V1)){
  56.     base[5]= Cnil;
  57.     } else {
  58.     base[5]= (V1->c.c_car);
  59.     V1=V1->c.c_cdr;}
  60.     if(!endp(V1))invalid_macro_call();}
  61.     if((base[4])==Cnil){
  62.     goto T4;}
  63.     if((base[5])==Cnil){
  64.     goto T7;}
  65.     base[6]= list(2,VV[2],base[2]);
  66.     base[7]= list(2,VV[1],base[6]);
  67.     base[8]= list(2,VV[2],base[2]);
  68.     base[9]= list(4,VV[3],base[8],base[5],VV[4]);
  69.     base[10]= list(2,VV[2],base[2]);
  70.     base[11]= list(2,VV[6],base[10]);
  71.     base[12]= list(3,VV[7],base[2],base[3]);
  72.     base[13]= list(3,VV[5],base[11],base[12]);
  73.     base[14]= list(2,VV[2],base[2]);
  74.     base[15]= list(5,VV[0],base[7],base[9],base[13],base[14]);
  75.     vs_top=(vs_base=base+15)+1;
  76.     return;
  77. T7:;
  78.     base[6]= list(2,VV[2],base[2]);
  79.     base[7]= list(2,VV[1],base[6]);
  80.     base[8]= list(2,VV[2],base[2]);
  81.     base[9]= list(2,VV[6],base[8]);
  82.     base[10]= list(3,VV[7],base[2],base[3]);
  83.     base[11]= list(3,VV[5],base[9],base[10]);
  84.     base[12]= list(2,VV[2],base[2]);
  85.     base[13]= list(4,VV[0],base[7],base[11],base[12]);
  86.     vs_top=(vs_base=base+13)+1;
  87.     return;
  88. T4:;
  89.     base[6]= list(2,VV[2],base[2]);
  90.     base[7]= list(2,VV[1],base[6]);
  91.     base[8]= list(2,VV[2],base[2]);
  92.     base[9]= list(3,VV[0],base[7],base[8]);
  93.     vs_top=(vs_base=base+9)+1;
  94.     return;
  95. }
  96. /*    macro definition for DEFPARAMETER    */
  97.  
  98. static L2()
  99. {    register object *base=vs_base;
  100.     register object *sup=base+VM4;
  101.     vs_reserve(VM4);
  102.     check_arg(2);
  103.     vs_top=sup;
  104.     {object V2=base[0]->c.c_cdr;
  105.     if(endp(V2))invalid_macro_call();
  106.     base[2]= (V2->c.c_car);
  107.     V2=V2->c.c_cdr;
  108.     if(endp(V2))invalid_macro_call();
  109.     base[3]= (V2->c.c_car);
  110.     V2=V2->c.c_cdr;
  111.     if(endp(V2)){
  112.     base[4]= Cnil;
  113.     } else {
  114.     base[4]= (V2->c.c_car);
  115.     V2=V2->c.c_cdr;}
  116.     if(!endp(V2))invalid_macro_call();}
  117.     if((base[4])==Cnil){
  118.     goto T11;}
  119.     base[5]= list(2,VV[2],base[2]);
  120.     base[6]= list(2,VV[1],base[5]);
  121.     base[7]= list(2,VV[2],base[2]);
  122.     base[8]= list(4,VV[3],base[7],base[4],VV[8]);
  123.     base[9]= list(3,VV[7],base[2],base[3]);
  124.     base[10]= list(2,VV[2],base[2]);
  125.     base[11]= list(5,VV[0],base[6],base[8],base[9],base[10]);
  126.     vs_top=(vs_base=base+11)+1;
  127.     return;
  128. T11:;
  129.     base[5]= list(2,VV[2],base[2]);
  130.     base[6]= list(2,VV[1],base[5]);
  131.     base[7]= list(3,VV[7],base[2],base[3]);
  132.     base[8]= list(2,VV[2],base[2]);
  133.     base[9]= list(4,VV[0],base[6],base[7],base[8]);
  134.     vs_top=(vs_base=base+9)+1;
  135.     return;
  136. }
  137. /*    macro definition for DEFCONSTANT    */
  138.  
  139. static L3()
  140. {    register object *base=vs_base;
  141.     register object *sup=base+VM5;
  142.     vs_reserve(VM5);
  143.     check_arg(2);
  144.     vs_top=sup;
  145.     {object V3=base[0]->c.c_cdr;
  146.     if(endp(V3))invalid_macro_call();
  147.     base[2]= (V3->c.c_car);
  148.     V3=V3->c.c_cdr;
  149.     if(endp(V3))invalid_macro_call();
  150.     base[3]= (V3->c.c_car);
  151.     V3=V3->c.c_cdr;
  152.     if(endp(V3)){
  153.     base[4]= Cnil;
  154.     } else {
  155.     base[4]= (V3->c.c_car);
  156.     V3=V3->c.c_cdr;}
  157.     if(!endp(V3))invalid_macro_call();}
  158.     if((base[4])==Cnil){
  159.     goto T15;}
  160.     base[5]= list(2,VV[2],base[2]);
  161.     base[6]= list(3,VV[9],base[5],base[3]);
  162.     base[7]= list(2,VV[2],base[2]);
  163.     base[8]= list(4,VV[3],base[7],base[4],VV[10]);
  164.     base[9]= list(2,VV[2],base[2]);
  165.     base[10]= list(4,VV[0],base[6],base[8],base[9]);
  166.     vs_top=(vs_base=base+10)+1;
  167.     return;
  168. T15:;
  169.     base[5]= list(2,VV[2],base[2]);
  170.     base[6]= list(3,VV[9],base[5],base[3]);
  171.     base[7]= list(2,VV[2],base[2]);
  172.     base[8]= list(3,VV[0],base[6],base[7]);
  173.     vs_top=(vs_base=base+8)+1;
  174.     return;
  175. }
  176. /*    macro definition for AND    */
  177.  
  178. static L4()
  179. {    register object *base=vs_base;
  180.     register object *sup=base+VM6;
  181.     vs_reserve(VM6);
  182.     check_arg(2);
  183.     vs_top=sup;
  184.     {object V4=base[0]->c.c_cdr;
  185.     base[2]= V4;}
  186.     if(!(endp(base[2]))){
  187.     goto T18;}
  188.     base[3]= Ct;
  189.     vs_top=(vs_base=base+3)+1;
  190.     return;
  191. T18:;
  192.     base[3]= reverse(base[2]);
  193.     base[4]= cdr(base[3]);
  194.     base[5]= car(base[3]);
  195. T24:;
  196.     if(!(endp(base[4]))){
  197.     goto T25;}
  198.     vs_top=(vs_base=base+5)+1;
  199.     return;
  200. T25:;
  201.     base[6]= cdr(base[4]);
  202.     base[5]= list(3,VV[11],car(base[4]),base[5]);
  203.     base[4]= base[6];
  204.     goto T24;
  205. }
  206. /*    macro definition for OR    */
  207.  
  208. static L5()
  209. {    register object *base=vs_base;
  210.     register object *sup=base+VM7;
  211.     vs_reserve(VM7);
  212.     check_arg(2);
  213.     vs_top=sup;
  214.     {object V5=base[0]->c.c_cdr;
  215.     base[2]= V5;}
  216.     if(!(endp(base[2]))){
  217.     goto T34;}
  218.     base[3]= Cnil;
  219.     vs_top=(vs_base=base+3)+1;
  220.     return;
  221. T34:;
  222.     base[3]= reverse(base[2]);
  223.     base[4]= cdr(base[3]);
  224.     base[5]= car(base[3]);
  225. T40:;
  226.     if(!(endp(base[4]))){
  227.     goto T41;}
  228.     vs_top=(vs_base=base+5)+1;
  229.     return;
  230. T41:;
  231.     base[6]= cdr(base[4]);
  232.     vs_base=vs_top;
  233.     Lgensym();
  234.     vs_top=sup;
  235.     base[7]= vs_base[0];
  236.     base[8]= list(2,base[7],car(base[4]));
  237.     base[9]= make_cons(base[8],Cnil);
  238.     base[10]= list(4,VV[11],base[7],base[7],base[5]);
  239.     base[5]= list(3,VV[12],base[9],base[10]);
  240.     base[4]= base[6];
  241.     goto T40;
  242. }
  243. /*    macro definition for LOCALLY    */
  244.  
  245. static L6()
  246. {    register object *base=vs_base;
  247.     register object *sup=base+VM8;
  248.     vs_reserve(VM8);
  249.     check_arg(2);
  250.     vs_top=sup;
  251.     {object V6=base[0]->c.c_cdr;
  252.     base[2]= V6;}
  253.     base[3]= listA(3,VV[12],Cnil,base[2]);
  254.     vs_top=(vs_base=base+3)+1;
  255.     return;
  256. }
  257. /*    macro definition for LOOP    */
  258.  
  259. static L7()
  260. {    register object *base=vs_base;
  261.     register object *sup=base+VM9;
  262.     vs_reserve(VM9);
  263.     check_arg(2);
  264.     vs_top=sup;
  265.     {object V7=base[0]->c.c_cdr;
  266.     base[2]= V7;
  267.     vs_base=vs_top;
  268.     Lgensym();
  269.     vs_top=sup;
  270.     base[3]= vs_base[0];}
  271.     base[4]= make_cons(VV[0],base[2]);
  272.     base[5]= list(2,VV[15],base[3]);
  273.     base[6]= list(4,VV[14],base[3],base[4],base[5]);
  274.     base[7]= list(3,VV[13],Cnil,base[6]);
  275.     vs_top=(vs_base=base+7)+1;
  276.     return;
  277. }
  278. /*    macro definition for DEFMACRO    */
  279.  
  280. static L8()
  281. {    register object *base=vs_base;
  282.     register object *sup=base+VM10;
  283.     vs_reserve(VM10);
  284.     check_arg(2);
  285.     vs_top=sup;
  286.     {object V8=base[0]->c.c_cdr;
  287.     if(endp(V8))invalid_macro_call();
  288.     base[2]= (V8->c.c_car);
  289.     V8=V8->c.c_cdr;
  290.     if(endp(V8))invalid_macro_call();
  291.     base[3]= (V8->c.c_car);
  292.     V8=V8->c.c_cdr;
  293.     base[4]= V8;}
  294.     base[5]= list(2,VV[2],base[2]);
  295.     base[6]= list(2,VV[2],base[2]);
  296.     base[7]= list(2,VV[2],base[3]);
  297.     base[8]= list(2,VV[2],base[4]);
  298.     base[9]= list(4,VV[17],base[6],base[7],base[8]);
  299.     base[10]= list(3,VV[16],base[5],base[9]);
  300.     vs_top=(vs_base=base+10)+1;
  301.     return;
  302. }
  303. /*    macro definition for DEFUN    */
  304.  
  305. static L9()
  306. {    register object *base=vs_base;
  307.     register object *sup=base+VM11;
  308.     vs_reserve(VM11);
  309.     check_arg(2);
  310.     vs_top=sup;
  311.     {object V9=base[0]->c.c_cdr;
  312.     if(endp(V9))invalid_macro_call();
  313.     base[2]= (V9->c.c_car);
  314.     V9=V9->c.c_cdr;
  315.     if(endp(V9))invalid_macro_call();
  316.     base[3]= (V9->c.c_car);
  317.     V9=V9->c.c_cdr;
  318.     base[4]= V9;}
  319.     base[6]= base[4];
  320.     base[7]= Cnil;
  321.     symlispcall_no_event(VV[65],base+6,2);
  322.     Llist();
  323.     vs_top=sup;
  324.     base[5]= vs_base[0];
  325.     base[6]= car(base[5]);
  326.     base[7]= cadr(base[5]);
  327.     base[8]= caddr(base[5]);
  328.     if((base[6])==Cnil){
  329.     goto T59;}
  330.     base[9]= list(2,VV[2],base[2]);
  331.     base[10]= list(3,VV[19],base[9],VV[20]);
  332.     base[11]= list(3,VV[18],base[10],base[6]);
  333.     base[12]= list(2,VV[2],base[2]);
  334.     base[13]= list(2,VV[21],base[12]);
  335.     base[14]= listA(3,VV[13],base[2],base[8]);
  336.     base[15]= make_cons(base[14],Cnil);
  337.     base[16]= append(base[7],base[15]);
  338.     base[17]= listA(3,VV[23],base[3],base[16]);
  339.     base[18]= list(2,VV[22],base[17]);
  340.     base[19]= list(3,VV[18],base[13],base[18]);
  341.     base[20]= list(2,VV[2],base[2]);
  342.     base[21]= list(4,VV[0],base[11],base[19],base[20]);
  343.     vs_top=(vs_base=base+21)+1;
  344.     return;
  345. T59:;
  346.     base[9]= list(2,VV[2],base[2]);
  347.     base[10]= list(2,VV[21],base[9]);
  348.     base[11]= listA(3,VV[13],base[2],base[8]);
  349.     base[12]= make_cons(base[11],Cnil);
  350.     base[13]= append(base[7],base[12]);
  351.     base[14]= listA(3,VV[23],base[3],base[13]);
  352.     base[15]= list(2,VV[22],base[14]);
  353.     base[16]= list(3,VV[18],base[10],base[15]);
  354.     base[17]= list(2,VV[2],base[2]);
  355.     base[18]= list(3,VV[0],base[16],base[17]);
  356.     vs_top=(vs_base=base+18)+1;
  357.     return;
  358. }
  359. /*    macro definition for PSETQ    */
  360.  
  361. static L10()
  362. {    register object *base=vs_base;
  363.     register object *sup=base+VM12;
  364.     vs_reserve(VM12);
  365.     check_arg(2);
  366.     vs_top=sup;
  367.     {object V10=base[0]->c.c_cdr;
  368.     base[2]= V10;}
  369.     {object V11;
  370.     V11= base[2];
  371.     base[3]= Cnil;
  372.     base[4]= Cnil;
  373. T63:;
  374.     if(!(endp((V11)))){
  375.     goto T64;}
  376.     base[5]= reverse(base[4]);
  377.     base[6]= make_cons(Cnil,base[3]);
  378.     base[7]= reverse(base[6]);
  379.     base[8]= listA(3,VV[24],base[5],base[7]);
  380.     vs_top=(vs_base=base+8)+1;
  381.     return;
  382. T64:;
  383.     vs_base=vs_top;
  384.     Lgensym();
  385.     vs_top=sup;
  386.     base[5]= vs_base[0];
  387.     base[6]= list(2,base[5],cadr((V11)));
  388.     base[4]= make_cons(base[6],base[4]);
  389.     base[6]= list(3,VV[7],car((V11)),base[5]);
  390.     base[3]= make_cons(base[6],base[3]);
  391.     V11= cddr((V11));
  392.     goto T63;}
  393. }
  394. /*    macro definition for COND    */
  395.  
  396. static L11()
  397. {    register object *base=vs_base;
  398.     register object *sup=base+VM13;
  399.     vs_reserve(VM13);
  400.     check_arg(2);
  401.     vs_top=sup;
  402.     {object V12=base[0]->c.c_cdr;
  403.     base[2]= V12;
  404.     base[3]= Cnil;}
  405.     {object V13;
  406.     base[4]= reverse(base[2]);
  407.     V13= car(base[4]);
  408. T80:;
  409.     if(!(endp(base[4]))){
  410.     goto T81;}
  411.     vs_top=(vs_base=base+3)+1;
  412.     return;
  413. T81:;
  414.     if(!(endp(cdr((V13))))){
  415.     goto T87;}
  416.     if(!(car((V13))==Ct)){
  417.     goto T90;}
  418.     base[3]= Ct;
  419.     goto T85;
  420. T90:;
  421.     vs_base=vs_top;
  422.     Lgensym();
  423.     vs_top=sup;
  424.     base[5]= vs_base[0];
  425.     base[6]= list(2,base[5],car((V13)));
  426.     base[7]= make_cons(base[6],Cnil);
  427.     base[8]= list(4,VV[11],base[5],base[5],base[3]);
  428.     base[3]= list(3,VV[12],base[7],base[8]);
  429.     goto T85;
  430. T87:;
  431.     if(!(car((V13))==Ct)){
  432.     goto T96;}
  433.     if(!(endp(cddr((V13))))){
  434.     goto T100;}
  435.     base[3]= cadr((V13));
  436.     goto T98;
  437. T100:;
  438.     base[3]= make_cons(VV[0],cdr((V13)));
  439. T98:;
  440.     goto T85;
  441. T96:;
  442.     if(!(endp(cddr((V13))))){
  443.     goto T104;}
  444.     base[3]= list(4,VV[11],car((V13)),cadr((V13)),base[3]);
  445.     goto T102;
  446. T104:;
  447.     {object V14= car((V13));
  448.     base[5]= make_cons(VV[0],cdr((V13)));
  449.     base[3]= list(4,VV[11],V14,base[5],base[3]);}
  450. T102:;
  451. T85:;
  452.     base[4]= cdr(base[4]);
  453.     V13= car(base[4]);
  454.     goto T80;}
  455. }
  456. /*    macro definition for WHEN    */
  457.  
  458. static L12()
  459. {    register object *base=vs_base;
  460.     register object *sup=base+VM14;
  461.     vs_reserve(VM14);
  462.     check_arg(2);
  463.     vs_top=sup;
  464.     {object V15=base[0]->c.c_cdr;
  465.     if(endp(V15))invalid_macro_call();
  466.     base[2]= (V15->c.c_car);
  467.     V15=V15->c.c_cdr;
  468.     base[3]= V15;}
  469.     base[4]= make_cons(VV[0],base[3]);
  470.     base[5]= list(3,VV[11],base[2],base[4]);
  471.     vs_top=(vs_base=base+5)+1;
  472.     return;
  473. }
  474. /*    macro definition for UNLESS    */
  475.  
  476. static L13()
  477. {    register object *base=vs_base;
  478.     register object *sup=base+VM15;
  479.     vs_reserve(VM15);
  480.     check_arg(2);
  481.     vs_top=sup;
  482.     {object V16=base[0]->c.c_cdr;
  483.     if(endp(V16))invalid_macro_call();
  484.     base[2]= (V16->c.c_car);
  485.     V16=V16->c.c_cdr;
  486.     base[3]= V16;}
  487.     base[4]= list(2,VV[25],base[2]);
  488.     base[5]= make_cons(VV[0],base[3]);
  489.     base[6]= list(3,VV[11],base[4],base[5]);
  490.     vs_top=(vs_base=base+6)+1;
  491.     return;
  492. }
  493. /*    macro definition for PROG    */
  494.  
  495. static L14()
  496. {    register object *base=vs_base;
  497.     register object *sup=base+VM16;
  498.     vs_reserve(VM16);
  499.     check_arg(2);
  500.     vs_top=sup;
  501.     {object V17=base[0]->c.c_cdr;
  502.     if(endp(V17))invalid_macro_call();
  503.     base[2]= (V17->c.c_car);
  504.     V17=V17->c.c_cdr;
  505.     base[3]= V17;
  506.     base[4]= Cnil;}
  507. T113:;
  508.     if(endp(base[3])){
  509.     goto T115;}
  510.     if(!(type_of(car(base[3]))==t_cons)){
  511.     goto T115;}
  512.     if(caar(base[3])==VV[26]){
  513.     goto T114;}
  514. T115:;
  515.     base[5]= make_cons(VV[14],base[3]);
  516.     base[6]= make_cons(base[5],Cnil);
  517.     base[7]= append(base[4],base[6]);
  518.     base[8]= listA(3,VV[12],base[2],base[7]);
  519.     base[9]= list(3,VV[13],Cnil,base[8]);
  520.     vs_top=(vs_base=base+9)+1;
  521.     return;
  522. T114:;
  523.     base[4]= make_cons(car(base[3]),base[4]);
  524.     base[5]= car(base[3]);
  525.     base[3]= cdr(base[3]);
  526.     goto T113;
  527. }
  528. /*    macro definition for PROG*    */
  529.  
  530. static L15()
  531. {    register object *base=vs_base;
  532.     register object *sup=base+VM17;
  533.     vs_reserve(VM17);
  534.     check_arg(2);
  535.     vs_top=sup;
  536.     {object V18=base[0]->c.c_cdr;
  537.     if(endp(V18))invalid_macro_call();
  538.     base[2]= (V18->c.c_car);
  539.     V18=V18->c.c_cdr;
  540.     base[3]= V18;
  541.     base[4]= Cnil;}
  542. T132:;
  543.     if(endp(base[3])){
  544.     goto T134;}
  545.     if(!(type_of(car(base[3]))==t_cons)){
  546.     goto T134;}
  547.     if(caar(base[3])==VV[26]){
  548.     goto T133;}
  549. T134:;
  550.     base[5]= make_cons(VV[14],base[3]);
  551.     base[6]= make_cons(base[5],Cnil);
  552.     base[7]= append(base[4],base[6]);
  553.     base[8]= listA(3,VV[24],base[2],base[7]);
  554.     base[9]= list(3,VV[13],Cnil,base[8]);
  555.     vs_top=(vs_base=base+9)+1;
  556.     return;
  557. T133:;
  558.     base[4]= make_cons(car(base[3]),base[4]);
  559.     base[5]= car(base[3]);
  560.     base[3]= cdr(base[3]);
  561.     goto T132;
  562. }
  563. /*    macro definition for PROG1    */
  564.  
  565. static L16()
  566. {    register object *base=vs_base;
  567.     register object *sup=base+VM18;
  568.     vs_reserve(VM18);
  569.     check_arg(2);
  570.     vs_top=sup;
  571.     {object V19=base[0]->c.c_cdr;
  572.     if(endp(V19))invalid_macro_call();
  573.     base[2]= (V19->c.c_car);
  574.     V19=V19->c.c_cdr;
  575.     base[3]= V19;
  576.     vs_base=vs_top;
  577.     Lgensym();
  578.     vs_top=sup;
  579.     base[4]= vs_base[0];}
  580.     base[5]= list(2,base[4],base[2]);
  581.     base[6]= make_cons(base[5],Cnil);
  582.     base[7]= make_cons(base[4],Cnil);
  583.     base[8]= append(base[3],base[7]);
  584.     base[9]= listA(3,VV[12],base[6],base[8]);
  585.     vs_top=(vs_base=base+9)+1;
  586.     return;
  587. }
  588. /*    macro definition for PROG2    */
  589.  
  590. static L17()
  591. {    register object *base=vs_base;
  592.     register object *sup=base+VM19;
  593.     vs_reserve(VM19);
  594.     check_arg(2);
  595.     vs_top=sup;
  596.     {object V20=base[0]->c.c_cdr;
  597.     if(endp(V20))invalid_macro_call();
  598.     base[2]= (V20->c.c_car);
  599.     V20=V20->c.c_cdr;
  600.     if(endp(V20))invalid_macro_call();
  601.     base[3]= (V20->c.c_car);
  602.     V20=V20->c.c_cdr;
  603.     base[4]= V20;
  604.     vs_base=vs_top;
  605.     Lgensym();
  606.     vs_top=sup;
  607.     base[5]= vs_base[0];}
  608.     base[6]= list(2,base[5],base[3]);
  609.     base[7]= make_cons(base[6],Cnil);
  610.     base[8]= make_cons(base[5],Cnil);
  611.     base[9]= append(base[4],base[8]);
  612.     base[10]= listA(3,VV[12],base[7],base[9]);
  613.     base[11]= list(3,VV[0],base[2],base[10]);
  614.     vs_top=(vs_base=base+11)+1;
  615.     return;
  616. }
  617. /*    macro definition for MULTIPLE-VALUE-LIST    */
  618.  
  619. static L18()
  620. {    register object *base=vs_base;
  621.     register object *sup=base+VM20;
  622.     vs_reserve(VM20);
  623.     check_arg(2);
  624.     vs_top=sup;
  625.     {object V21=base[0]->c.c_cdr;
  626.     if(endp(V21))invalid_macro_call();
  627.     base[2]= (V21->c.c_car);
  628.     V21=V21->c.c_cdr;
  629.     if(!endp(V21))invalid_macro_call();}
  630.     base[3]= list(3,VV[27],VV[28],base[2]);
  631.     vs_top=(vs_base=base+3)+1;
  632.     return;
  633. }
  634. /*    macro definition for MULTIPLE-VALUE-SETQ    */
  635.  
  636. static L19()
  637. {    register object *base=vs_base;
  638.     register object *sup=base+VM21;
  639.     vs_reserve(VM21);
  640.     check_arg(2);
  641.     vs_top=sup;
  642.     {object V22=base[0]->c.c_cdr;
  643.     if(endp(V22))invalid_macro_call();
  644.     base[2]= (V22n;
  645. }
  646. /*    macro dll();
  647.     base[2e[3]),base[4]);
  648.     base[20->c.c_cdr;
  649.     base[4]= V20;
  650.     vs_base=vs_top;
  651.     Lgensym();
  652.     vs_top==vs_base;
  653.     register oase[3]=s_base=base+3)+s213;
  654. in)+s24top;
  655. 31= base[2];
  656.     vs_base=vs_top;
  657.     Lgensym();
  658.     vs_top=sup;
  659.     base[4]= vs_base[0]op;
  660. 14=0p;
  661.     base[5]= Cnil;
  662. 1553:;
  663.     if(!(endp((23))))){
  664.     goto T56];}
  665.     base[6]= list(2,VV305],base[3]);
  666.     base[7]= list(2,base[4],base[6]);
  667.     base[8]= make_cons(base75],Cnil);
  668.     base[9]= listA(3,VV[12],base84],base[5]);
  669.     vs_top=(vs_base=base+9)+1;
  670.     return;
  671. T564:;
  672.     {object 254= car((213));
  673.     base[6]= makefixnum((24]);
  674.     base[7]= list(3,VV312],base[6],base46]);
  675.     base[8]= list(3,VV[7] 25],base[7]);
  676.     base15]= make_cons(base84],base[5])}op;
  677. 31=,cdr((213));
  678. ;
  679. 14=((24])+1;
  680.     goto T550;}
  681. }
  682. /*    macro definition for MULTIPLE-VALUEBIOND    */
  683.  
  684. static 210()
  685. {    register object *base=vs_base;
  686.     register object *sup=base+V212;
  687.     vs_reserve(V212);
  688.     check_arg(2);
  689.     vs_top=sup;
  690.     {object 216=base[0]->c.c_cdr;
  691.     if(endp(216))invalid_macro_call();
  692.     base[2]= (216->c.c_car);
  693.     216(216->c.c_cdr;
  694.     if(endp(216))invalid_macro_call();
  695.     base32]= (216->c.c_car);
  696.     216(216->c.c_cdr;
  697.     base[4]= V6ase=base+3)+s273;
  698. in)+s28);
  699.     271= base[2];
  700.     vs_base=vs_top;
  701.     Lgensym();
  702.     vs_top=sup;
  703.     base54]= vs_base[0]op;
  704. 84=0p;
  705.     base65]= Cnil;
  706. 1703:;
  707.     if(!(endp((27))))){
  708.     goto T71];}
  709.     base76]= list(2,VV305],base[3]);
  710.     base86]= list(2,base[5],base[7]);
  711.     base[9]= reverse(base[6]);
  712.     base[10]= make_cons(base84],base[9]);
  713.     base[11]= listA(3,VV[24],base[10],base40]);
  714.     vs_top=(vs_base=base+11)+1;
  715.     return; T714:;
  716.     {object 294= car((27)));
  717.     base[7]= makefixnum((28]);
  718.     base[8]= list(3,VV312],base7]),base[5]);
  719.     base96]= list(2,29],base[8]);
  720.     base[6]= make_cons(base94],base[6])};
  721.     271=,cdr((273));
  722. ;
  723. 8]= (28])+1;
  724.     goto T780;}
  725. }
  726. /*    macro definition forDOD    */
  727.  
  728. static 211()
  729. {    register object *base=vs_base;
  730.     register object *sup=base+V213;
  731.     vs_reserve(V213);
  732.     check_arg(2);
  733.     vs_top=sup;
  734.     {object 320=base[0]->c.c_cdr;
  735.     if(endp(320))invalid_macro_call();
  736.     base[2]= (320->c.c_car);
  737.     320(320->c.c_cdr;
  738.     if(endp(320))invalid_macro_call();
  739.     {object 31]= (320->c.c_car);
  740.     if(endp(316))invalid_macro_call();
  741.     base32]= (321->c.c_car);
  742.     31](321->c.c_cdr;
  743.     base[4]= 31];}
  744.     320(320->c.c_cdr;
  745.     base54]=(32p;
  746.     base65]= Cnil;
  747.     vs_base=vs_top;
  748.     Lgensym();
  749.     vs_top=sup;
  750.     base75]= vs_base[0];
  751.     base85]= Cnil;
  752.     base96]= Cnil;}
  753. TT87:;
  754.     if(endp(base53])){
  755.     goto T894;}
  756.     if(!(type_of(car(base53]))==t_cons)){
  757.     goto T894;}
  758.     if(caar(base53])==VV[26]){
  759.     goto T88l;}
  760. TT98:;
  761.     goto 1T85;
  762. T88:);
  763.     base[6]= make_cons(car(base53],(base[6]);
  764.     base[10]=(car(base53]);
  765.     base[5]= dar(base53]);
  766.     goto 1T75;
  767. T854:;
  768.     {object 32);
  769.     base[10]= base[2];
  770.  32]=(car(base[10]);T2070:;
  771.     if(!(endp(base[10]s)){
  772.     goto 208l;}
  773.     goto 204);T208:);
  774.     base[11]= list2],car((323)),cadr((323)]);
  775.     base[8]= make_cons(base[11],base[8]);
  776.     if(endp(cddr((323)])){
  777.     goto 2104;}
  778.     base96]= make_cons(car((323)),base[9]);
  779.     base96]= make_cons(ccddr((323)),base[9]); 210:);
  780.     base[10]=(dar(base[10]);
  781.  32]=(car(base[10]);
  782.     goto 2087;} 204:);
  783.     base[10]= reverse(base89]);
  784.     base[11]= make_cons(VV[0],base46]);
  785.     base126]= list(2,VV3[2],base[16]);
  786.     base136]= list(3,VV[11],base[3],base1[2]);
  787.     base145]= make_cons(VV[14],base53]);
  788.     base150]= reverse(base[9]);
  789.     base[65]= make_cons(VV3[3],base153]);
  790.     base176]= list(2,VV1[5],base[7]);
  791.     base1[8]= list6,(VV[14],base7]),base1[3],base124],base[[6],base1[7]);
  792.     base198]= make_cons(base[85],Cnil);
  793.     base209]= append(base[6],base1[9]);
  794.     base219]= listA(3,VV[12],base[10],base209]);
  795.     base229]= list(3,VV[13],Cnil,base210]);
  796.     vs_top=(vs_base=base212)+1;
  797.     return;
  798. }
  799. /*    macro definition forDOG*    */
  800.  
  801. static 212()
  802. {    register object *base=vs_base;
  803.     register object *sup=base+V214;
  804.     vs_reserve(V214);
  805.     check_arg(2);
  806.     vs_top=sup;
  807.     {object 330=base[0]->c.c_cdr;
  808.     if(endp(330))invalid_macro_call();
  809.     base[2]= (331->c.c_car);
  810.     33=(331->c.c_cdr;
  811.     if(endp(330))invalid_macro_call();
  812.     {object 34]= (331->c.c_car);
  813.     if(endp(346))invalid_macro_call();
  814.     base32]= (341->c.c_car);
  815.     34=(341->c.c_cdr;
  816.     base[4]= 34];}
  817.     33=(331->c.c_cdr;
  818.     base54]=(33p;
  819.     base65]= Cnil;
  820.     vs_base=vs_top;
  821.     Lgensym();
  822.     vs_top=sup;
  823.     base75]= vs_base[0];
  824.     base85]= Cnil;
  825.     base96]= Cnil;}
  826. 2317:;
  827.     if(endp(base53])){
  828.     goto 2133;}
  829.     if(!(type_of(car(base53]))==t_cons)){
  830.     goto 2133;}
  831.     if(caar(base53])==VV[26]){
  832.     goto 232);}
  833. 2338:;
  834.     goto 229); 2132:;
  835.     base[6]= make_cons(car(base53],(base[6]);
  836.     base[10]=(car(base53]);
  837.     base[5]= dar(base53]);
  838.     goto 231); 2294:;
  839.     {object 35);
  840.     base[10]= base[2];
  841.  35]=(car(base[10]);T2510:;
  842.     if(!(endp(base[10]s)){
  843.     goto 252l;}
  844.     goto 248);T252:);
  845.     base[11]= list2],car((353)),cadr((353)]);
  846.     base[8]= make_cons(base[11],base[8]);
  847.     if(endp(cddr((353)])){
  848.     goto 2584;}
  849.     base96]= make_cons(car((353)),base[9]);
  850.     base96]= make_cons(ccddr((353)),base[9]); 258:);
  851.     base[10]=(dar(base[10]);
  852.  35]=(car(base[10]);
  853.     goto 251);}
  854. 248:);
  855.     base[10]= reverse(base89]);
  856.     base[11]= make_cons(VV[0],base46]);
  857.     base126]= list(2,VV3[2],base[16]);
  858.     base136]= list(3,VV[11],base[3],base1[2]);
  859.     base145]= make_cons(VV[14],base53]);
  860.     base150]= reverse(base[9]);
  861.     base[65]= make_cons(VV73],base153]);
  862.     base176]= list(2,VV1[5],base[7]);
  863.     base1[8]= list6,(VV[14],base7]),base1[3],base124],base[[6],base1[7]);
  864.     base198]= make_cons(base[85],Cnil);
  865.     base209]= append(base[6],base1[9]);
  866.     base219]= listA(3,VV[24],base[10],base209]);
  867.     base229]= list(3,VV[13],Cnil,base210]);
  868.     vs_top=(vs_base=base212)+1;
  869.     return;
  870. }
  871. /*    macro definition forCASE*    */
  872.  
  873. static 232()
  874. {    register object *base=vs_base;
  875.     register object *sup=base+V254;
  876.     vs_reserve(V254);
  877.     check_arg(2);
  878.     vs_top=sup;
  879.     {object 316=base[0]->c.c_cdr;
  880.     if(endp(316))invalid_macro_call();
  881.     base[2]= (316->c.c_car);
  882.     316(316->c.c_cdr;
  883.     base[3]= 368;
  884.     base[4]= Cnil;
  885.     vs_base=vs_top;
  886.     Lgensym();
  887.     vs_top=sup;
  888.     base[5]= vs_base[0];}
  889.     {object 37p;
  890.     base65]= reverse(base30]);
  891.  37]=(car(base69]); 2740:;
  892.     if(!(endp(base60]s)){
  893.     goto 275];}
  894.     base76]= list(2,base[5],base26]);
  895.     base[8]= make_cons(base75],Cnil);
  896.     base[9]= lisA(3,VV[12],base84],base45]);
  897.     vs_top=(vs_base=base+9)+1;
  898.     return;
  899. 2750:;
  900.     if(car((37]))=Ct)){
  901.     goto 2803;}
  902.     if(!(car((37]))=,VV343])){
  903.     goto 281);}
  904. 2803:;
  905.     base[4]= make_cons(VV[0],cdr((37])]);
  906.     goto 279); 2810:;
  907.     if(!(type_of(car((37])])==t_cons)){
  908.     goto 287];}
  909.     base76]= list(2,VV12](car((37])]);
  910.     base[8]= list(3,VV35]2,base[5],base[7]);
  911.     base[9]= make_cons(VV[0],cdr((37])]);
  912.     base[4]= list43,VV[11],base84],base[9],base45]);
  913.     goto 279); 2870:;
  914.     iff(car((37])])=,Cnil{;
  915.     goto 279);}
  916.     base76]= list(2,VV12](car((37])]);
  917.     base[8]= list(3,VV36]2,base[5],base[7]);
  918.     base[9]= make_cons(VV[0],cdr((37])]);
  919.     base[4]= list43,VV[11],base84],base[9],base45]); 2792:;
  920.     base[6]=(dar(base60]);
  921.  37]=(car(base69]);
  922.     goto 2740;}
  923. }
  924. /*    macro definition forRETURN*    */
  925.  
  926. static 242()
  927. {    register object *base=vs_base;
  928.     register object *sup=base+V264;
  929.     vs_reserve(V264);
  930.     check_arg(2);
  931.     vs_top=sup;
  932.     {object 386=base[0]->c.c_cdr;
  933.     if(endp(38s)){
  934.     base[2]= Cnil;
  935. } else {;
  936.     base[2]= (386->c.c_car);
  937.     38=(386->c.c_cdr}_top==vs_bas38s))invalid_macro_call();}
  938.     base[3]= list(3,VV373],Cnil,base22]);
  939.     vs_top=(vs_base=base+3)+1;
  940.     return;
  941. }
  942. /*    macro definition forDO-LIST    */
  943.  
  944. static 252()
  945. {    register object *base=vs_base;
  946.     register object *sup=base+V274;
  947.     vs_reserve(V274);
  948.     check_arg(2);
  949.     vs_top=sup;
  950.     {object 396=base[0]->c.c_cdr;
  951.     if(endp(390))invalid_macro_call();
  952.     {object 40]= (391->c.c_car);
  953.     if(endp(420))invalid_macro_call();
  954.     base[2]= (420->c.c_car);
  955.     40](420->c.c_cdr;
  956.     if(endp(420))invalid_macro_call();
  957.     base32]= (420->c.c_car);
  958.     40](420->c.c_cdr;
  959.     if(endp(420){;
  960.     base[4]= Cnil;
  961. } else {;
  962.     base42]= (420->c.c_car);
  963.     40](420->c.c_cdr}_top==vs_bas420))invalid_macro_call();}
  964.     39=(391->c.c_cdr;
  965.     base54]=(39l;
  966.     vs_base=vs_top;
  967.     Lgensym();
  968.     vs_top=sup;
  969.     base65]= vs_base[0];}
  970.     base76]= list(2,VV394],base[6]);
  971.     base[8]= list(3(base[6],base35],base[7]);
  972.     base[9]= list(2,VV40],(base[6]);
  973.     base[10]= list(2,VV40],(base[6]);
  974.     base[18]= list(3(base24],base[9],base106]);
  975.     base126]= list(2,base84],base[16]);
  976.     base136]= list(2,VV41],(base[6]);
  977.     base[46]= list(2,base1[3],base43]);
  978.     base150]= listA43,VV383],base1[2],base124],base[5]);
  979.     vs_top=(vs_base=base153)+1;
  980.     return;
  981. }
  982. /*    macro definition forDOTIMEST    */
  983.  
  984. static 262()
  985. {    register object *base=vs_base;
  986.     register object *sup=base+V284;
  987.     vs_reserve(V284);
  988.     check_arg(2);
  989.     vs_top=sup;
  990.     {object 416=base[0]->c.c_cdr;
  991.     if(endp(410))invalid_macro_call();
  992.     {object 42]= (411->c.c_car);
  993.     if(endp(420))invalid_macro_call();
  994.     base[2]= (420->c.c_car);
  995.     42=(420->c.c_cdr;
  996.     if(endp(420))invalid_macro_call();
  997.     base32]= (420->c.c_car);
  998.     42=(420->c.c_cdr;
  999.     if(endp(420){;
  1000.     base[4]= Cnil;
  1001. } else {;
  1002.     base42]= (420->c.c_car);
  1003.     42=(420->c.c_cdr}_top==vs_bas420))invalid_macro_call();}
  1004.     416(411->c.c_cdr;
  1005.     base54]=(41l;
  1006.     vs_base=vs_top;
  1007.     Lgensym();
  1008.     vs_top=sup;
  1009.     base65]= vs_base[0];}
  1010.     base76]= list(2(base[6],base35]);
  1011.     base86]= list(2,VV425],base26]);
  1012.     base98]= list(3(base24],VV19]],base[8]);
  1013.     base[10]= list(2,base7]),base96]);
  1014.     base[18]= list(3,VV43]3(base24],base66]);
  1015.     base126]= list(2,base[11],base46]);
  1016.     base136]= listA43,VV383],base103],base1[2],base[5]);
  1017.     vs_top=(vs_base=base1+3)+1;
  1018.     return;
  1019. }1